import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class ArraySortDemo {
    public static void main(String[] args) {
//    冒泡排序
//        int [] arr = {4,2,6,5,3,7,9,1,8};
////        要进行arr.length-1次冒泡
//        for (int i = 0; i < arr.length-1; i++) {
//            for(int j = 0; j < arr.length-i-1; j++){
//                if(arr[j] > arr[j + 1]){
//                    int temp = arr[j];
//                    arr[j] = arr[j + 1];
//                    arr[j + 1] = temp;
//                }
//            }
//        }
//        System.out.println(Arrays.toString(arr));


//        选择排序
//        int [] arr = {4,2,6,5,3,7,9,1,8};
//        for (int i = 0; i < arr.length-1; i++) {
//            for(int j = i+1; j < arr.length; j++){
//                if(arr[i] > arr[j]){
//                    int temp = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = temp;
//                }
//            }
//        }
//        System.out.println(Arrays.toString(arr));


//        猜数字(随机生成1——100的一个数字)
//        Random r = new Random();
//        int key = r.nextInt(100)+1;
//        Scanner sc = new Scanner(System.in);
//        while (true){
//            System.out.println("请输入你要猜的数字");
//            int num = sc.nextInt();
//            if(num == key){
//                System.out.println("恭喜你！猜对啦");
//                break;
//            } else if (num > key) {
//                System.out.println("不对哦，你猜的数字太大了");
//            }else {
//                System.out.println("不对哦，你猜的数字太小了");
//            }
//        }


//        折半查找
        int arr [] = {1,4,6,8,13,15,19,24,27};
        int key = 15;
        int start = 0;
        int end = arr.length - 1;
        int mid = 0;
        while (start <= end){
            mid = (start + end)/2;
            if(arr[mid] < key){
                start = mid + 1;
            } else if (arr[mid] > key) {
                end = mid - 1;
            }else break;
        }
        if(start > end){
            System.out.println(key+"不在该数组中");
        }else {
            System.out.println(key+"在该数组中,并且索引是"+mid);
        }
    }
}
